package myThread;

import java.util.Scanner;

public class demo25 {
    public static void main(String[] args) {
        Object locker = new Object();
        Thread t1 = new Thread(()->{
           try{
               System.out.println("t1 wait之前");
               synchronized (locker){
                   locker.wait();
               }
               System.out.println("t1 wait之后");
           }catch (InterruptedException e){
               throw new RuntimeException();
           }
        });
        Thread t2 = new Thread(()->{
           try{
               System.out.println("t2 wait之前");
               synchronized (locker){
                   locker.wait();
               }
               System.out.println("t2 wait之后");

           }catch (InterruptedException e){
               throw new RuntimeException();
           }
        });
        Thread t3 = new Thread(()->{
            Scanner scanner = new Scanner(System.in);
            System.out.println("输入任意内容唤醒所有线程");
            scanner.next();
            synchronized (locker){
                locker.notifyAll();
            }
        });
//        Thread t3 = new Thread(()->{
//            Scanner scanner = new Scanner(System.in);
//            System.out.println("输入任意内容,唤醒线程");
//            scanner.next();
//            synchronized (locker){
//                locker.notify();
//            }
//            System.out.println("输入任意内容,唤醒另一个线程");
//            scanner.next();
//            synchronized (locker){
//                locker.notify();
//            }
//
//        });
        t1.start();
        t2.start();
        t3.start();
    }
}
